package cn.bobohost.market.web.advice;

import cn.bobohost.market.common.pojo.ResultDto;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 用来处理Controller里面的异常的增强类
 * RestControllerAdvice：专门用来处理拦截contrller中的异常的类
 */
@RestControllerAdvice
public class ControllerExceptionAdvice {




    /**
     * 只处理RuntimeException
     * @param e
     * @return
     */
    @ExceptionHandler(RuntimeException.class)
    public ResultDto handleRuntimeException(RuntimeException e){
        //记录日志（也可以发邮件、发短信等）
//        log.error(e.getMessage(),e);
        System.out.println("操作失败，错误是："+e.getMessage());
        //返回响应结果
        return ResultDto.error(50000, e.getMessage());
    }

    /**
     * 方法名随便--兜底
     * @ExceptionHandler默认处理所有异常，会将异常对象扔到方法的参数中
     * @param e
     * @return
     */
    @ExceptionHandler
    public ResultDto handleThrowable(Throwable e){
        //记录日志（也可以发邮件、发短信等）
//        log.error(e.getMessage(),e);
        System.out.println("操作失败，错误是："+e.getMessage());
        //返回响应结果
        return ResultDto.error(50000,"操作失败！");
//        return ResultDto.error(50000, e.getMessage());
    }

}
